.text
.section .rodata
.align 3
.LC2:
        .string "%.1e %.1e %.1e %.1e\n"
        .align  3
.LC3:
        .string "%ld %ld\n"
        .align  3
.LC4:
        .string "%ld %ld %ld %ld\n"

.LC0:
        .word   1077936128
        .align  3
.LC1:
        .word   0
        .word   1074266112
.text
.align 2
.globl main
.type main @function
main:
    addi sp, sp, -48
    sd ra, 40(sp)
    sd s0, 32(sp)
    addi s0, sp, 48
    
    lui a5, %hi(.LC0)
    flw fa5, %lo(.LC0)(a5)
    // n1
    fsw fa5, -20(s0)

    lui a5, %hi(.LC1)
    fld fa5, %lo(.LC1)(a5)
    // n2
    fsd fa5, -32(s0)

    li a5, 1999998976
    addi a5, a5, 1024
    // n3
    sd a5, -40(s0)

    li a5, 1234567168
    addi a5, a5, 722
    // n4
    sd a5, -48(s0)

    // n1
    flw fa5, -20(s0)
    fcvt.d.s fa5, fa5
    // n4
    ld a4, -48(s0)
    ld a3, -40(s0)
    ld a2, -32(s0)
    fmv.x.d a1, fa5
    lui a5, %hi(.LC2)
    addi a0, a5, %lo(.LC2)
    call printf

    ld a2, -48(s0)
    ld a1, -40(s0)
    lui a5, %hi(.LC3)
    addi a0, a5, %lo(.LC3)
    call printf

    flw fa5, -20(s0)
    fcvt.d.s fa5, fa5
    ld a4, -48(s0)
    ld a3, -40(s0)
    ld a2, -32(s0)
    fmv.x.d a1, fa5
    lui a5, %hi(.LC4)
    addi a0, a5, %lo(.LC4)
    call printf

    li a0, 0
    ld ra, 40(sp)
    ld s0, 32(sp)
    addi sp, sp, 48
    jr ra